import UIKit

extension QKC where AA == UIDeviceOrientation {
    public func isPortrait_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isPortrait
	}

    public func isLandscape_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isLandscape
	}

    public func isFlat_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isFlat
	}

    public func isValidInterfaceOrientation_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isValidInterfaceOrientation
	}

}

@available(iOS 2.0, *)
extension QKC where AA :UIDevice {
		// e.g. "My iPhone"
    open func name_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.name
	}

		// e.g. @"iPhone", @"iPod touch"
    open func model_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.model
	}

		// localized version of model
    open func localizedModel_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.localizedModel
	}

		// e.g. @"iOS"
    open func systemName_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.systemName
	}

		// e.g. @"4.0"
    open func systemVersion_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.systemVersion
	}

		// return current device orientation.  this will return UIDeviceOrientationUnknown unless device orientation notifications are being generated.
    open func orientation_qk_g() -> QKC<AA,YY,ZZ, UIDeviceOrientation >{
		 self +^ self.value.orientation
	}

		// a UUID that may be used to uniquely identify the device, same across apps from a single vendor.
    @available(iOS 6.0, *)
    open func identifierForVendor_qk_g() -> QKC<AA,YY,ZZ, UUID? >{
		 self +^ self.value.identifierForVendor
	}

    open func isGeneratingDeviceOrientationNotifications_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isGeneratingDeviceOrientationNotifications
	}

		// default is NO
    @available(iOS 3.0, *)
    open func isBatteryMonitoringEnabled_qk_s(_ isBatteryMonitoringEnabled:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isBatteryMonitoringEnabled).then_QK { $0.value.isBatteryMonitoringEnabled = isBatteryMonitoringEnabled }
	}
    @available(iOS 3.0, *)
    open func isBatteryMonitoringEnabled_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isBatteryMonitoringEnabled
	}

		// UIDeviceBatteryStateUnknown if monitoring disabled
    @available(iOS 3.0, *)
    open func batteryState_qk_g() -> QKC<AA,YY,ZZ, UIDevice.BatteryState >{
		 self +^ self.value.batteryState
	}

		// 0 .. 1.0. -1.0 if UIDeviceBatteryStateUnknown
    @available(iOS 3.0, *)
    open func batteryLevel_qk_g() -> QKC<AA,YY,ZZ, Float >{
		 self +^ self.value.batteryLevel
	}

		// default is NO
    @available(iOS 3.0, *)
    open func isProximityMonitoringEnabled_qk_s(_ isProximityMonitoringEnabled:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isProximityMonitoringEnabled).then_QK { $0.value.isProximityMonitoringEnabled = isProximityMonitoringEnabled }
	}
    @available(iOS 3.0, *)
    open func isProximityMonitoringEnabled_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isProximityMonitoringEnabled
	}

		// always returns NO if no proximity detector
    @available(iOS 3.0, *)
    open func proximityState_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.proximityState
	}

    @available(iOS 4.0, *)
    open func isMultitaskingSupported_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isMultitaskingSupported
	}

    @available(iOS 3.2, *)
    open func userInterfaceIdiom_qk_g() -> QKC<AA,YY,ZZ, UIUserInterfaceIdiom >{
		 self +^ self.value.userInterfaceIdiom
	}

		// nestable
    open func beginGeneratingDeviceOrientationNotifications_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.beginGeneratingDeviceOrientationNotifications()
	}

    open func endGeneratingDeviceOrientationNotifications_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.endGeneratingDeviceOrientationNotifications()
	}

		// Plays a click only if an enabling input view is on-screen and user has enabled input clicks.
    @available(iOS 4.2, *)
    open func playInputClick_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.playInputClick()
	}

}

